xenpaging: populate paged-out pages unconditionally in grant code
authorKeir Fraser <keir@xen.org>
Fri, 26 Nov 2010 14:17:56 +0000 (14:17 +0000)
committerKeir Fraser <keir@xen.org>
Fri, 26 Nov 2010 14:17:56 +0000 (14:17 +0000)
Populate a page unconditionally to avoid missing a page-in request.
If the page is already in the process of being paged-in, the this vcpu
will be stopped and later resumed once the page content is usable
again.

This matches other p2m_mem_paging_populate usage in the source tree.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
xen/common/grant_table.c

index 721f2a5ecdf59a951ad77b2da2c9e8c576d09456..092e6c3bfd6239a6fa2251c716950ac086411300 100644 (file)
@@ -156,10 +156,11 @@ static int __get_paged_frame(unsigned long gfn, unsigned long *frame, int readon
 
     if ( p2m_is_valid(p2mt) ) {
         *frame = mfn_x(mfn);
-        if ( p2m_is_paged(p2mt) )
-            p2m_mem_paging_populate(p2m, gfn);
         if ( p2m_is_paging(p2mt) )
+        {
+            p2m_mem_paging_populate(p2m, gfn);
             rc = GNTST_eagain;
+        }
     } else {
        *frame = INVALID_MFN;
        rc = GNTST_bad_page;